Keyboards having a matrix of keys are particularly well suited for use in data processing systems and other devices, including computers and communication units, such as two-way radios. The individual keys of such keyboards provide continuity between corresponding column and row conductors when depressed. Output signals from the data processing system are coupled to each column conductor for sequentially scanning the keyboard for depressed keys. A depressed key is sensed when the output signal from the column conductor is present on the corresponding row conductor. Thus, for an array of keys having K rows and J columns, the data processing system must provide J output signals for the J columns and monitor the K row conductors. As a result, a relatively large number of signals (K+J) are required to interface the data processing system to the keyboard.
In order to reduce the number of interconnecting signals, additional circuitry may be utilized for scanning the array of keys and providing a digitally coded signal when a particular key is depressed. The digitally coded signal uniquely identifies the depressed key. Nevertheless, the stored program control of the data processing system must be programmed to decode the digitally coded signals in order to recognize the depressed key, and the additional circuitry increases the cost of the data processing system.
Because microprocessors are in general used to scan keys, the input lines must be connected to the microprocessor, thereby using K+J input lines of a microprocessor. Because microprocessors today perform more and more functions for a particular device, such as a radio, each input line and output line of the microprocessor becomes increasingly valuable. Consequently, if a simple keyboard utilizes 16 keys, in a 4.times.4 array, eight inputs are required from a microprocessor. This use of microprocessor inputs is inefficient and a wasteful.
Accordingly, there is a need for an apparatus and method of scanning a large number of keys such that a minimal number of inputs is needed to scan the keys.